
package com.mmaingenieria.GestorFacturacion.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Mikle
 */
public class LoginServlet extends HttpServlet {

    private static final String paginaPrincipalEditor  = "includes/gestionClientes.jsp"; // Si el rol es de admin o editor le llevare a clientes
    private static final String paginaPrincipalVisor = "includes/gestionInformes.jsp"; //Si el rol es de visor le llevare a informes
    private static final String paginaError = "includes/login.jsp"; //Si hace mal el LoginServlet le devuelvo a la pagina de LoginServlet
   
    private static final String msgError = "Validación incorrecta de usuario y/o contraseña, vuelva a intentarlo por favor.";
    
    private static final String user = "admin";//Quitar cuando haya bd
    private static final String pass = "admin";//Quitar cuando haya bd
    private static final String rol = "1";//quitar cuando haya base de datos
    
    
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        doPost (request, response);  //todo lo que entre por Get que lo haga por post
    }

    
    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
               
        RequestDispatcher dispatcher = null;
		
        //recojemos valores del formulario
        String _user = request.getParameter("usuario");
        String _pass = request.getParameter("password");
        
        //comprobamos user y pass correctos (luego habra que hacerlo por BD)
        if ( user.equalsIgnoreCase(_user) && pass.equals(_pass)){ 

            HttpSession sesion = request.getSession(true); //si exite el usuario y la contraseá creamos una sessión para guardar el nombre y el rol
            sesion.setAttribute("nombreUsuario", _user); //ahora le estoy pasando el usuario pero luego deberia ir a la BD y recojer el nombre del usuario (no el usuario)
            sesion.setAttribute("rol", rol);
                       
            if (rol.equals("1") || rol.equals("2")){ //Si es Admin o Editor le llevo a la gestion de clientes
                dispatcher = request.getRequestDispatcher(paginaPrincipalEditor);
                dispatcher.forward(request, response);
            } 
            if (rol.equals("3")){ //Si es Visor le llevo a la gestion de informes
                dispatcher = request.getRequestDispatcher(paginaPrincipalVisor);
                dispatcher.forward(request, response);
            }       
        }
        else{
            request.setAttribute("msg", msgError);
            dispatcher = request.getRequestDispatcher(paginaError);
            dispatcher.forward(request, response);
        }      
    }

    
    
    
    
    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Servlet que gestiona el login de accesso a la plataforma";
    }// </editor-fold>
}
